
<!DOCTYPE HTML>
<html lang="zh-hans" >
    <head>
        <meta charset="UTF-8">
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <title>RTP · Aivin开发笔记</title>
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="description" content="">
        <meta name="generator" content="GitBook 3.2.3">
        <meta name="author" content="Aivin">
        
        
    
    <link rel="stylesheet" href="../../gitbook/style.css">

    
            
                
                <link rel="stylesheet" href="../../gitbook/gitbook-plugin-search-plus/search.css">
                
            
                
                <link rel="stylesheet" href="../../gitbook/gitbook-plugin-anchor-navigation-ex/style/plugin.css">
                
            
                
                <link rel="stylesheet" href="../../gitbook/gitbook-plugin-versions-select/plugin.css">
                
            
                
                <link rel="stylesheet" href="../../gitbook/gitbook-plugin-fontsettings/website.css">
                
            
                
                <link rel="stylesheet" href="../../gitbook/gitbook-plugin-tbfed-pagefooter/footer.css">
                
            
                
                <link rel="stylesheet" href="../../gitbook/gitbook-plugin-donate/plugin.css">
                
            
                
                <link rel="stylesheet" href="../../gitbook/gitbook-plugin-local-video/video-js.min.css">
                
            
                
                <link rel="stylesheet" href="../../gitbook/gitbook-plugin-splitter/splitter.css">
                
            
                
                <link rel="stylesheet" href="../../gitbook/gitbook-plugin-expandable-chapters/expandable-chapters.css">
                
            
                
                <link rel="stylesheet" href="../../gitbook/gitbook-plugin-highlight/website.css">
                
            
                
                <link rel="stylesheet" href="../../gitbook/gitbook-plugin-theme-comscore/test.css">
                
            
        

    

    
        
        <link rel="stylesheet" href="../../styles/website.css">
        
    

        
    
    
    
    <meta name="HandheldFriendly" content="true"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../../gitbook/images/apple-touch-icon-precomposed-152.png">
    <link rel="shortcut icon" href="../../gitbook/images/favicon.ico" type="image/x-icon">

    
    <link rel="next" href="RTCP.html" />
    
    
    <link rel="prev" href="RTSP.html" />
    

    
        <link rel="shortcut icon" href='../../assets/images/favicon.ico' type="image/x-icon">
    
    
        <link rel="bookmark" href='../../assets/images/favicon.ico' type="image/x-icon">
    
    
    

    </head>
    <body>
        
<div class="book">
    <div class="book-summary">
        
            
<div id="book-search-input" role="search">
    <input type="text" placeholder="输入并搜索" />
</div>

            
                <nav role="navigation">
                


<ul class="summary">
    
    

    

    
        
        
    
        <li class="chapter " data-level="1.1" data-path="../../">
            
                <a href="../../">
            
                    
                    项目说明
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.2" data-path="../linux/linux基础.html">
            
                <a href="../linux/linux基础.html">
            
                    
                    linux
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.2.1" data-path="../linux/linux基础.html">
            
                <a href="../linux/linux基础.html">
            
                    
                    linux基础
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.2.2" data-path="../linux/android底层开发.html">
            
                <a href="../linux/android底层开发.html">
            
                    
                    android底层开发
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.3" data-path="../c语言/c基础.html">
            
                <a href="../c语言/c基础.html">
            
                    
                    c
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.3.1" data-path="../c语言/c基础.html">
            
                <a href="../c语言/c基础.html">
            
                    
                    c基础
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.4" data-path="../c++/c++基础.html">
            
                <a href="../c++/c++基础.html">
            
                    
                    c++
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.4.1" data-path="../c++/c++基础.html">
            
                <a href="../c++/c++基础.html">
            
                    
                    c++基础
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.5" data-path="../QT/QT基础.html">
            
                <a href="../QT/QT基础.html">
            
                    
                    QT
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.5.1" data-path="../QT/QT基础.html">
            
                <a href="../QT/QT基础.html">
            
                    
                    QT基础
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.6" data-path="../jni/JNI基础.html">
            
                <a href="../jni/JNI基础.html">
            
                    
                    JNI
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.6.1" data-path="../jni/JNI基础.html">
            
                <a href="../jni/JNI基础.html">
            
                    
                    JNI基础
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.6.2" data-path="../jni/JNI例子.html">
            
                <a href="../jni/JNI例子.html">
            
                    
                    JNI例子
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.7" data-path="../SDL/SDL基础.html">
            
                <a href="../SDL/SDL基础.html">
            
                    
                    SDL
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.7.1" data-path="../SDL/SDL基础.html">
            
                <a href="../SDL/SDL基础.html">
            
                    
                    SDL基础
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.8" data-path="../ffmpeg/ffmpeg基础.html">
            
                <a href="../ffmpeg/ffmpeg基础.html">
            
                    
                    ffmpeg
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.8.1" data-path="../ffmpeg/ffmpeg基础.html">
            
                <a href="../ffmpeg/ffmpeg基础.html">
            
                    
                    ffmpeg基础
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.8.2" data-path="../ffmpeg/ffmpeg示例代码.html">
            
                <a href="../ffmpeg/ffmpeg示例代码.html">
            
                    
                    ffmpeg示例代码
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.8.3" data-path="../ffmpeg/ffmpeg软解rtsp简单直播.html">
            
                <a href="../ffmpeg/ffmpeg软解rtsp简单直播.html">
            
                    
                    ffmpeg软解rtsp简单直播
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.8.4" data-path="../ffmpeg/rtsp服务器.html">
            
                <a href="../ffmpeg/rtsp服务器.html">
            
                    
                    rtsp服务器Windows
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.9" data-path="../opencv/opencv模块.html">
            
                <a href="../opencv/opencv模块.html">
            
                    
                    opencv模块
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.9.1" data-path="../opencv/opencv.html">
            
                <a href="../opencv/opencv.html">
            
                    
                    opencv
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.10" data-path="../openSLES/openSLES基础.html">
            
                <a href="../openSLES/openSLES基础.html">
            
                    
                    openSLES
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.10.1" data-path="../openSLES/openSLES基础.html">
            
                <a href="../openSLES/openSLES基础.html">
            
                    
                    openSLES基础
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.11" data-path="../SoundTouch/移植SoundTouch.html">
            
                <a href="../SoundTouch/移植SoundTouch.html">
            
                    
                    SoundTouch
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.11.1" data-path="../SoundTouch/移植SoundTouch.html">
            
                <a href="../SoundTouch/移植SoundTouch.html">
            
                    
                    移植SoundTouch
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.11.2" data-path="../SoundTouch/实现音频变速和变调.html">
            
                <a href="../SoundTouch/实现音频变速和变调.html">
            
                    
                    实现音频变速和变调
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.12" data-path="../openGLES/openGLES基础.html">
            
                <a href="../openGLES/openGLES基础.html">
            
                    
                    openGLES模块
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.12.1" data-path="../openGLES/GLSL基础.html">
            
                <a href="../openGLES/GLSL基础.html">
            
                    
                    GLSL基础
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.12.2" data-path="../openGLES/openglES示例.html">
            
                <a href="../openGLES/openglES示例.html">
            
                    
                    openglES示例
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.13" data-path="音视频基础.html">
            
                <a href="音视频基础.html">
            
                    
                    音视频术语-文件格式-协议
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.13.1" data-path="音视频基础.html">
            
                <a href="音视频基础.html">
            
                    
                    音视频基础
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.13.2" data-path="RTSP.html">
            
                <a href="RTSP.html">
            
                    
                    RTSP
            
                </a>
            

            
        </li>
    
        <li class="chapter active" data-level="1.13.3" data-path="RTP.html">
            
                <a href="RTP.html">
            
                    
                    RTP
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.13.4" data-path="RTCP.html">
            
                <a href="RTCP.html">
            
                    
                    RTCP
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.13.5" data-path="H264.html">
            
                <a href="H264.html">
            
                    
                    H264
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.13.6" data-path="YUV.html">
            
                <a href="YUV.html">
            
                    
                    YUV
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.13.7" data-path="SurfaceView.html">
            
                <a href="SurfaceView.html">
            
                    
                    SurfaceView
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.13.8" data-path="RTMP.html">
            
                <a href="RTMP.html">
            
                    
                    RTMP
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.13.9" data-path="AAC详解.html">
            
                <a href="AAC详解.html">
            
                    
                    AAC详解
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.14" data-path="../音视频相关代码/音视频相关代码.html">
            
                <a href="../音视频相关代码/音视频相关代码.html">
            
                    
                    音视频相关代码
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.15" data-path="../ndk/NDK编译基础.html">
            
                <a href="../ndk/NDK编译基础.html">
            
                    
                    NDK工程编译
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.15.1" data-path="../ndk/NDK编译基础.html">
            
                <a href="../ndk/NDK编译基础.html">
            
                    
                    NDK编译基础
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.15.2" data-path="../ndk/cmake方式.html">
            
                <a href="../ndk/cmake方式.html">
            
                    
                    cmake
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.15.3" data-path="../ndk/Android.mk模板.html">
            
                <a href="../ndk/Android.mk模板.html">
            
                    
                    Android.mk
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.15.4" data-path="../ndk/Application.mk模板.html">
            
                <a href="../ndk/Application.mk模板.html">
            
                    
                    Application.mk
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

    

    <li class="divider"></li>

    <li>
        <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
            本书使用 GitBook 发布
        </a>
    </li>
</ul>


                </nav>
            
        
    </div>

    <div class="book-body">
        
            <div class="body-inner">
                
                    

<div class="book-header" role="navigation">
    

    <!-- Title -->
    <h1>
        <i class="fa fa-circle-o-notch fa-spin"></i>
        <a href="../.." >RTP</a>
    </h1>
</div>




                    <div class="page-wrapper" tabindex="-1" role="main">
                        <div class="page-inner">
                            
<div class="search-plus" id="book-search-results">
    <div class="search-noresults">
    
                                <section class="normal markdown-section">
                                
                                <div id="anchor-navigation-ex-navbar"><i class="fa fa-navicon"></i><ul><li><span class="title-icon "></span><a href="#rtp"><b>1. </b>RTP</a></li><ul><li><span class="title-icon "></span><a href="#rtp&#x5C01;&#x5305;&#x60C5;&#x51B5;"><b>1.1. </b>RTP&#x5C01;&#x5305;&#x60C5;&#x51B5;</a></li><ul><li><span class="title-icon "></span><a href="#&#x5355;&#x4E2A;nal&#x5305;&#x5355;&#x5143;"><b>1.1.1. </b>&#x5355;&#x4E2A;NAL&#x5305;&#x5355;&#x5143;</a></li><li><span class="title-icon "></span><a href="#&#x7EC4;&#x5408;&#x5C01;&#x5305;&#x6A21;&#x5F0F;"><b>1.1.2. </b>&#x7EC4;&#x5408;&#x5C01;&#x5305;&#x6A21;&#x5F0F;</a></li><li><span class="title-icon "></span><a href="#fu-a&#x7684;&#x5206;&#x7247;&#x683C;&#x5F0F;"><b>1.1.3. </b>FU-A&#x7684;&#x5206;&#x7247;&#x683C;&#x5F0F;</a></li></ul><li><span class="title-icon "></span><a href="#rtp-&#x56FA;&#x5B9A;&#x5934;&#x7ED3;&#x6784;"><b>1.2. </b>RTP &#x56FA;&#x5B9A;&#x5934;&#x7ED3;&#x6784;</a></li><ul><li><span class="title-icon "></span><a href="#rtp&#x5934;&#x5B9A;&#x4E49;&#x8BF4;&#x660E;"><b>1.2.1. </b>RTP&#x5934;&#x5B9A;&#x4E49;&#x8BF4;&#x660E;</a></li></ul><li><span class="title-icon "></span><a href="#nalu&#x5934;-&#x3001;fu-indicator"><b>1.3. </b>NALU&#x5934; &#x3001;FU indicator</a></li><ul><li><span class="title-icon "></span><a href="#nalu&#x5934;-&#x3001;fu-indicator-&#x7ED3;&#x6784;"><b>1.3.1. </b>NALU&#x5934; &#x3001;FU indicator &#x7ED3;&#x6784;</a></li></ul><li><span class="title-icon "></span><a href="#fu-header"><b>1.4. </b>FU header</a></li><li><span class="title-icon "></span><a href="#&#x89E3;&#x6790;&#x793A;&#x4F8B;"><b>1.5. </b>&#x89E3;&#x6790;&#x793A;&#x4F8B;</a></li><li><span class="title-icon "></span><a href="#&#x4E2A;&#x4EBA;&#x7ECF;&#x9A8C;"><b>1.6. </b>&#x4E2A;&#x4EBA;&#x7ECF;&#x9A8C;</a></li></ul></ul></div><a href="#rtp" id="anchorNavigationExGoTop"><i class="fa fa-arrow-up"></i></a><h1 id="rtp"><a name="rtp" class="anchor-navigation-ex-anchor" href="#rtp"><i class="fa fa-link" aria-hidden="true"></i></a>1. RTP</h1>
<h2 id="rtp&#x5C01;&#x5305;&#x60C5;&#x51B5;"><a name="rtp&#x5C01;&#x5305;&#x60C5;&#x51B5;" class="anchor-navigation-ex-anchor" href="#rtp&#x5C01;&#x5305;&#x60C5;&#x51B5;"><i class="fa fa-link" aria-hidden="true"></i></a>1.1. RTP&#x5C01;&#x5305;&#x60C5;&#x51B5;</h2>
<h3 id="&#x5355;&#x4E2A;nal&#x5305;&#x5355;&#x5143;"><a name="&#x5355;&#x4E2A;nal&#x5305;&#x5355;&#x5143;" class="anchor-navigation-ex-anchor" href="#&#x5355;&#x4E2A;nal&#x5305;&#x5355;&#x5143;"><i class="fa fa-link" aria-hidden="true"></i></a>1.1.1. &#x5355;&#x4E2A;NAL&#x5305;&#x5355;&#x5143;</h3>
<p>&#x5BF9;&#x4E8E; NALU &#x7684;&#x957F;&#x5EA6;&#x5C0F;&#x4E8E; MTU &#x5927;&#x5C0F;&#x7684;&#x5305;, &#x4E00;&#x822C;&#x91C7;&#x7528;&#x5355;&#x4E00; NAL &#x5355;&#x5143;&#x6A21;&#x5F0F;.</p>
<h3 id="&#x7EC4;&#x5408;&#x5C01;&#x5305;&#x6A21;&#x5F0F;"><a name="&#x7EC4;&#x5408;&#x5C01;&#x5305;&#x6A21;&#x5F0F;" class="anchor-navigation-ex-anchor" href="#&#x7EC4;&#x5408;&#x5C01;&#x5305;&#x6A21;&#x5F0F;"><i class="fa fa-link" aria-hidden="true"></i></a>1.1.2. &#x7EC4;&#x5408;&#x5C01;&#x5305;&#x6A21;&#x5F0F;</h3>
<p>&#x5F53; NALU &#x7684;&#x957F;&#x5EA6;&#x7279;&#x522B;&#x5C0F;&#x65F6;, &#x53EF;&#x4EE5;&#x628A;&#x51E0;&#x4E2A; NALU &#x5355;&#x5143;&#x5C01;&#x5728;&#x4E00;&#x4E2A; RTP &#x5305;&#x4E2D;. &#xFF08;&#x8FD9;&#x79CD;&#x60C5;&#x51B5;&#x7528;&#x7684;&#x5C11;&#xFF09;</p>
<h3 id="fu-a&#x7684;&#x5206;&#x7247;&#x683C;&#x5F0F;"><a name="fu-a&#x7684;&#x5206;&#x7247;&#x683C;&#x5F0F;" class="anchor-navigation-ex-anchor" href="#fu-a&#x7684;&#x5206;&#x7247;&#x683C;&#x5F0F;"><i class="fa fa-link" aria-hidden="true"></i></a>1.1.3. FU-A&#x7684;&#x5206;&#x7247;&#x683C;&#x5F0F;</h3>
<p>&#x800C;&#x5F53; NALU &#x7684;&#x957F;&#x5EA6;&#x8D85;&#x8FC7; MTU &#x65F6;, &#x5C31;&#x5FC5;&#x987B;&#x5BF9; NALU &#x5355;&#x5143;&#x8FDB;&#x884C;&#x5206;&#x7247;&#x5C01;&#x5305;. &#x4E5F;&#x79F0;&#x4E3A; Fragmentation Units (FUs).
&#x73B0;&#x5B58;&#x4E24;&#x4E2A;&#x7248;&#x672C;FU-A&#xFF0C;FU-B&#x3002;</p>
<h2 id="rtp-&#x56FA;&#x5B9A;&#x5934;&#x7ED3;&#x6784;"><a name="rtp-&#x56FA;&#x5B9A;&#x5934;&#x7ED3;&#x6784;" class="anchor-navigation-ex-anchor" href="#rtp-&#x56FA;&#x5B9A;&#x5934;&#x7ED3;&#x6784;"><i class="fa fa-link" aria-hidden="true"></i></a>1.2. RTP &#x56FA;&#x5B9A;&#x5934;&#x7ED3;&#x6784;</h2>
<p>&#x524D; 12 &#xFF08;&#x7B2C;&#x4E00;&#x6392;4&#x4E2A;byte +&#x7B2C;&#x4E8C;&#x6392; 4byte +&#x7B2C;&#x4E09;&#x6392; 4byte &#xFF09;&#x4E2A;&#x5B57;&#x8282;&#x51FA;&#x73B0;&#x5728;&#x6BCF;&#x4E2A; RTP &#x5305;&#x4E2D;&#x3002;&#x4EC5;&#x4EC5;&#x5728;&#x88AB;&#x6DF7;&#x5408;&#x5668;&#x63D2;&#x5165;&#x65F6;&#xFF0C;&#x624D;&#x51FA;&#x73B0; CSRC &#x8BC6;&#x522B;&#x7B26;&#x5217;&#x8868;&#x3002;&#xFF08;&#x5982;&#x679C;CC&#x4E3A;0&#xFF0C;&#x5C31;&#x4EE3;&#x8868;&#x6CA1;&#x6709;CSRC&#xFF09;
<img src="https://gitee.com/hnyer/filesOfGitbook/raw/master/files/wkDrone_p1.png" alt=""></p>
<h3 id="rtp&#x5934;&#x5B9A;&#x4E49;&#x8BF4;&#x660E;"><a name="rtp&#x5934;&#x5B9A;&#x4E49;&#x8BF4;&#x660E;" class="anchor-navigation-ex-anchor" href="#rtp&#x5934;&#x5B9A;&#x4E49;&#x8BF4;&#x660E;"><i class="fa fa-link" aria-hidden="true"></i></a>1.2.1. RTP&#x5934;&#x5B9A;&#x4E49;&#x8BF4;&#x660E;</h3>
<p><img src="https://gitee.com/hnyer/filesOfGitbook/raw/master/files/wkDrone_p2.png" alt="p"></p>
<h2 id="nalu&#x5934;-&#x3001;fu-indicator"><a name="nalu&#x5934;-&#x3001;fu-indicator" class="anchor-navigation-ex-anchor" href="#nalu&#x5934;-&#x3001;fu-indicator"><i class="fa fa-link" aria-hidden="true"></i></a>1.3. NALU&#x5934; &#x3001;FU indicator</h2>
<pre><code class="lang-xml">&#x4E2A;&#x4EBA;&#x7406;&#x89E3; NALU&#x5934;&#x548C; FU indicator&#x5DEE;&#x4E0D;&#x591A; &#x3002;
&#x5728;&#x5355;&#x4E2A;&#x5C01;&#x5305;&#x6A21;&#x5F0F;&#x4E0B; RTP&#x5934;&#x540E;&#x9762;&#x8DDF;&#x7740;&#x5C31;&#x662F;NALU&#x5934;&#xFF1B;&#x5728;&#x5206;&#x7247;&#x5C01;&#x5305;&#x6A21;&#x5F0F;&#x4E0B;&#xFF0C;RTP&#x5934;&#x540E;&#x9762;&#x8DDF;&#x7740;&#x7684;&#x5C31;&#x662F;FU indicator&#x3002;
NALU&#x5934;&#x548C; FU indicator&#x7ED3;&#x6784;&#x662F;&#x4E00;&#x6837;&#x7684;&#xFF0C;&#x53EA;&#x662F;Type(&#x540E;&#x4E94;&#x4E2A;bit)&#x5BF9;&#x5E94;&#x7684;&#x610F;&#x4E49;&#x4E0D;&#x4E00;&#x6837;&#x3002;
</code></pre>
<h3 id="nalu&#x5934;-&#x3001;fu-indicator-&#x7ED3;&#x6784;"><a name="nalu&#x5934;-&#x3001;fu-indicator-&#x7ED3;&#x6784;" class="anchor-navigation-ex-anchor" href="#nalu&#x5934;-&#x3001;fu-indicator-&#x7ED3;&#x6784;"><i class="fa fa-link" aria-hidden="true"></i></a>1.3.1. NALU&#x5934; &#x3001;FU indicator &#x7ED3;&#x6784;</h3>
<p>&#x7531;&#x4E00;&#x4E2A;&#x5B57;&#x8282;&#x7EC4;&#x6210;
<img src="https://gitee.com/hnyer/filesOfGitbook/raw/master/files/wkDrone_p3.png" alt="p"></p>
<p><img src="https://gitee.com/hnyer/filesOfGitbook/raw/master/files/wkDrone_p4.png" alt="p"></p>
<h2 id="fu-header"><a name="fu-header" class="anchor-navigation-ex-anchor" href="#fu-header"><i class="fa fa-link" aria-hidden="true"></i></a>1.4. FU header</h2>
<p><img src="https://gitee.com/hnyer/filesOfGitbook/raw/master/files/wkDrone_p5.png" alt="p">
<img src="https://gitee.com/hnyer/filesOfGitbook/raw/master/files/wkDrone_p6.png" alt="p"></p>
<h2 id="&#x89E3;&#x6790;&#x793A;&#x4F8B;"><a name="&#x89E3;&#x6790;&#x793A;&#x4F8B;" class="anchor-navigation-ex-anchor" href="#&#x89E3;&#x6790;&#x793A;&#x4F8B;"><i class="fa fa-link" aria-hidden="true"></i></a>1.5. &#x89E3;&#x6790;&#x793A;&#x4F8B;</h2>
<pre><code class="lang-html">WkDrone&#x9879;&#x76EE;&#x7528;&#x5230;&#x7684;&#x662F; &#x5355;&#x4E2A;NAL&#x5305;&#x5355;&#x5143;&#x5C01;&#x88C5;+ FUA&#x5206;&#x7247;&#x5C01;&#x88C5;&#x6A21;&#x5F0F;&#x3002;&#x6240;&#x4EE5;&#x4EE5;&#x6B64;&#x4E3A;&#x4F8B;&#x8FDB;&#x884C;&#x5206;&#x6790; &#x3002;
1&#x3001;&#x5BA2;&#x6237;&#x7AEF;&#x6BCF;&#x6B21;&#x4ECE;&#x670D;&#x52A1;&#x5668;&#x63A5;&#x6536;&#x4E00;&#x4E2A;RTP&#x5305; &#x3002;
RTP&#x5934; + &#x6570;&#x636E;data

2&#x3001;&#x6839;&#x636E;data[0] &#x5224;&#x65AD;&#x662F;&#x4EC0;&#x4E48;&#x5C01;&#x5305;&#x6A21;&#x5F0F;&#x3002;

3&#x3001;&#x5982;&#x679C;&#x662F;&#x5355;&#x4E2A;NAL &#x5C31;&#x76F4;&#x63A5;&#x5224;&#x65AD;&#x62FF;&#x5230;&#x6574;&#x4E2A;NALU.
&#x5982;&#x679C;&#x662F;FU_A&#x6A21;&#x5F0F; &#x5C31;&#x6839;&#x636E;data[1]&#x5224;&#x65AD;&#x662F;&#x5F53;&#x524D;NALU&#x5355;&#x5143;&#x662F;&#x5426;&#x5F00;&#x59CB;&#x3001;&#x7ED3;&#x675F;&#x8FD8;&#x662F;&#x4E2D;&#x95F4;&#x3002;
&#x5982;&#x679C;&#x662F;&#x5F00;&#x5934;&#x5C31;&#x9700;&#x8981;&#x5728;&#x5F00;&#x59CB;&#x63A5;&#x6536;&#x524D;&#x624B;&#x52A8;&#x6DFB;&#x52A0;&#x5F53;&#x524D;NALU&#x7C7B;&#x578B;&#xFF08;rtpPackage.data[0] &amp; 0xE0)|(rtpPackage.data[1]&amp;0x1F) --&gt;
&#x6700;&#x540E;&#x83B7;&#x5F97;F &#x3001;NRI &#x3001;Type &#x8FD9;&#x4E09;&#x4E2A;&#x4FE1;&#x606F; &#xFF0C;F&#x53EF;&#x4EE5;&#x5FFD;&#x7565;&#xFF0C; NRI&#x6807;&#x8BB0;&#x8FD9;&#x4E2A;NALU&#x7684;&#x91CD;&#x8981;&#x6027; &#xFF0C;Type&#x6807;&#x8BB0;&#x5E27;&#x7C7B;&#x578B;&#xFF09;&#x3002;

4&#x3001;&#x6700;&#x540E;&#x83B7;&#x5F97;&#x6574;&#x4E2A;NAUL&#x540E; &#x5728;&#x524D;&#x9762;00 00 00 01 &#x4F20;&#x7ED9;&#x89E3;&#x7801;&#x5668;&#x89E3;&#x7801;&#x3002;
</code></pre>
<p><img src="https://gitee.com/hnyer/filesOfGitbook/raw/master/files/wkDrone_p7.png" alt="p"></p>
<pre><code class="lang-java"><span class="hljs-comment">//&#x5173;&#x952E;&#x4EE3;&#x7801;&#xFF1A;</span>
<span class="hljs-comment">/**
   * &#x5C06; rtp&#x5305; &#x7EC4;&#x6210; NALU &#x683C;&#x5F0F;&#x7684;&#x6570;&#x636E; &lt;br&gt;
   *     &#x8FD4;&#x56DE;&#x4E00;&#x5E27;H264&#x6570;&#x636E;(&#x4E00;&#x4E2A;NALU)
   */</span>
  <span class="hljs-keyword">public</span> <span class="hljs-keyword">byte</span>[] rtpPackage2NALU(<span class="hljs-keyword">byte</span>[] rtpData)
  {
      <span class="hljs-keyword">if</span>(rtpData.length == <span class="hljs-number">0</span>)
      {
          <span class="hljs-keyword">return</span> <span class="hljs-keyword">null</span> ;
      }
      RtpPackage rtpPackage = <span class="hljs-keyword">new</span> RtpPackage();
      rtpPackage.V=(rtpData[<span class="hljs-number">0</span>]&amp;<span class="hljs-number">0xFF</span>)&gt;&gt;<span class="hljs-number">6</span> ;
      rtpPackage.PT = rtpData[<span class="hljs-number">1</span>] &amp; <span class="hljs-number">0x7F</span>;
      rtpPackage.data = <span class="hljs-keyword">new</span> <span class="hljs-keyword">byte</span>[rtpData.length-<span class="hljs-number">12</span>];
      System.arraycopy(rtpData, <span class="hljs-number">12</span>, rtpPackage.data, <span class="hljs-number">0</span>, rtpData.length - <span class="hljs-number">12</span>);
      <span class="hljs-keyword">if</span>( (rtpPackage.V != <span class="hljs-number">2</span>)&amp;&amp;(rtpPackage.PT!=<span class="hljs-number">96</span>) || rtpPackage.data.length &lt;<span class="hljs-number">2</span> )
      {
          <span class="hljs-keyword">return</span> <span class="hljs-keyword">null</span>;
      }
      <span class="hljs-comment">// rtp&#x5C01;&#x5305;&#x65B9;&#x5F0F;&#xFF0C;&#x5355;&#x4E00;&#x5C01;&#x5305;&#x3001;&#x7EC4;&#x5408;&#x5C01;&#x5305;&#x3001;&#x5206;&#x7247;&#x5C01;&#x5305;&#x7B49; 0x1F -&gt; 0001 1111</span>
      <span class="hljs-keyword">int</span> fuIndicatorTypeFlag = rtpPackage.data[<span class="hljs-number">0</span>] &amp; <span class="hljs-number">0x1F</span>;
      <span class="hljs-comment">// FU head&#x4E2D;&#x7684; S&#x3001;E&#x6807;&#x8BB0; &#x7528;&#x6765;&#x5224;&#x65AD;NALU&#x7684;&#x5F00;&#x59CB;&#x3001;&#x7ED3;&#x675F; 0xCO -&gt;  1100 0000  &#x53D6;S&#x3001;E</span>
      <span class="hljs-keyword">int</span> fuHeadSEFlag = rtpPackage.data[<span class="hljs-number">1</span>] &amp; <span class="hljs-number">0xC0</span>;

      <span class="hljs-keyword">switch</span> (fuIndicatorTypeFlag)
      {
          <span class="hljs-keyword">case</span> NAL_UNIT_TYPE_STAP_A:
              <span class="hljs-keyword">break</span>;
          <span class="hljs-keyword">case</span> NAL_UNIT_TYPE_STAP_B:
              <span class="hljs-keyword">break</span>;
          <span class="hljs-keyword">case</span> NAL_UNIT_TYPE_MTAP16:
              <span class="hljs-keyword">break</span>;
          <span class="hljs-keyword">case</span> NAL_UNIT_TYPE_MTAP24:
              <span class="hljs-keyword">break</span>;
          <span class="hljs-keyword">case</span> NAL_UNIT_TYPE_FU_B:
              <span class="hljs-keyword">break</span>;
          <span class="hljs-keyword">case</span> NAL_UNIT_TYPE_FU_A:
              <span class="hljs-keyword">switch</span> (fuHeadSEFlag)
              {
                  <span class="hljs-comment">//NAL Unit start packet 0x80-&gt; 1000 0000</span>
                  <span class="hljs-keyword">case</span> <span class="hljs-number">0x80</span>:
                      NALEndFlag = <span class="hljs-keyword">false</span>;
                      bufferLength = rtpPackage.data.length-<span class="hljs-number">1</span> ;
                      buffer[<span class="hljs-number">0</span>] = <span class="hljs-keyword">new</span> <span class="hljs-keyword">byte</span>[rtpPackage.data.length-<span class="hljs-number">1</span>];
                      <span class="hljs-comment">/*
                      &#x6BCF;&#x4E00;&#x5E27;&#x5F00;&#x59CB;&#x7684;&#x65F6;&#x5019;&#x8981;&#x52A0;&#x4E0A;&#x8868;&#x793A;&#x8FD9;&#x4E2A;&#x5E27;&#x7C7B;&#x578B;&#x7684;&#x4FE1;&#x606F;&#x3002;
                      0xE0 -&gt;1110 0000    0x1F -&gt; 0001 1111
                      &#x53D6;FU indicator&#x7684;&#x524D;&#x4E09;&#x4F4D;&#x548C;FU Header&#x7684;&#x540E;&#x4E94;&#x4F4D;&#x3002;
                      &#x6700;&#x540E;&#x8FD9;&#x4E2A;byte&#x5305;&#x542B;&#x4E86;  F &#x3001;NRI &#x3001;Type &#x8FD9;&#x4E09;&#x4E2A;&#x4FE1;&#x606F;
                      F&#x53EF;&#x4EE5;&#x5FFD;&#x7565;&#xFF0C; NRI&#x6807;&#x8BB0;&#x8FD9;&#x4E2A;NALU&#x7684;&#x91CD;&#x8981;&#x6027; &#xFF0C;Type&#x6807;&#x8BB0;&#x5E27;&#x7C7B;&#x578B;
                      buffer[0][0] &#x5E27;&#x7C7B;&#x578B;&#x6570;&#x636E; 41&#x3001;61&#x3001;65&#x3001;67&#x3001;68&#x7B49;
                       */</span>
                      buffer[<span class="hljs-number">0</span>][<span class="hljs-number">0</span>] = (<span class="hljs-keyword">byte</span>)((rtpPackage.data[<span class="hljs-number">0</span>] &amp; <span class="hljs-number">0xE0</span>)|(rtpPackage.data[<span class="hljs-number">1</span>]&amp;<span class="hljs-number">0x1F</span>));
                      System.arraycopy(rtpPackage.data,<span class="hljs-number">2</span>,buffer[<span class="hljs-number">0</span>],<span class="hljs-number">1</span>,rtpPackage.data.length-<span class="hljs-number">2</span>);
                      packetNum = <span class="hljs-number">1</span>;
                      <span class="hljs-keyword">break</span>;
                  <span class="hljs-comment">//NAL Unit middle packet   0x00-&gt;0000 0000</span>
                  <span class="hljs-keyword">case</span> <span class="hljs-number">0x00</span>:
                      NALEndFlag = <span class="hljs-keyword">false</span>;
                      bufferLength += rtpPackage.data.length-<span class="hljs-number">2</span>;
                      buffer[packetNum] = <span class="hljs-keyword">new</span> <span class="hljs-keyword">byte</span>[rtpPackage.data.length-<span class="hljs-number">2</span>];
                      System.arraycopy(rtpPackage.data,<span class="hljs-number">2</span>,buffer[packetNum],<span class="hljs-number">0</span>,rtpPackage.data.length-<span class="hljs-number">2</span>);
                      packetNum++;
                      <span class="hljs-keyword">break</span>;
                  <span class="hljs-comment">//NAL Unit end packet  0x40 --&gt;0100 0000</span>
                  <span class="hljs-keyword">case</span> <span class="hljs-number">0x40</span>:
                      NALEndFlag = <span class="hljs-keyword">true</span>;
                      <span class="hljs-comment">//+4 &#x662F;&#x56E0;&#x4E3A;&#x591A;&#x4E86; 00 00 00 01</span>
                      NALUnit = <span class="hljs-keyword">new</span> <span class="hljs-keyword">byte</span>[bufferLength + rtpPackage.data.length- <span class="hljs-number">2</span> + <span class="hljs-number">4</span>];
                      <span class="hljs-comment">//&#x56E0;&#x4E3A;&#x6253;&#x5305;&#x53D1;&#x9001;&#x7684;&#x65F6;&#x5019;&#x662F;&#x53BB;&#x6389;&#x4E86;00 01&#x8FD9;&#x79CD;&#x6807;&#x8BB0;&#x4F4D;&#x7684;&#xFF0C;&#x4E3A;&#x4E86;&#x5904;&#x7406;&#x540E;&#x7EED;&#x7684;H264&#xFF0C;&#x9700;&#x8981;&#x624B;&#x52A8;&#x52A0;&#x4E0A;</span>
                      NALUnit[<span class="hljs-number">0</span>] = <span class="hljs-number">0x00</span>;
                      NALUnit[<span class="hljs-number">1</span>] = <span class="hljs-number">0x00</span>;
                      NALUnit[<span class="hljs-number">2</span>] = <span class="hljs-number">0x00</span>;
                      NALUnit[<span class="hljs-number">3</span>] = <span class="hljs-number">0x01</span>;
                      <span class="hljs-keyword">int</span> tmpLen = <span class="hljs-number">4</span>;
                      <span class="hljs-comment">//&#x7B2C;&#x4E00;&#x7247; + &#x4E2D;&#x95F4;&#x7247; &#x6570;&#x636E;</span>
                      <span class="hljs-keyword">for</span>(<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; packetNum; ++i)
                      {
                          System.arraycopy(buffer[i],<span class="hljs-number">0</span>,NALUnit,tmpLen,buffer[i].length);
                          tmpLen += buffer[i].length;
                      }
                      <span class="hljs-comment">//&#x6700;&#x540E;&#x4E00;&#x7247;&#x7684;&#x6570;&#x636E;</span>
                      System.arraycopy(rtpPackage.data,<span class="hljs-number">2</span>,NALUnit,tmpLen,rtpPackage.data.length-<span class="hljs-number">2</span>);
                      <span class="hljs-keyword">break</span>;
              }
              <span class="hljs-keyword">break</span>;

          <span class="hljs-comment">//&#x8FD9;&#x91CC;&#x91C7;&#x7528;&#x6392;&#x9664;&#x6CD5;&#xFF0C;&#x6392;&#x9664;&#x4E86;&#x7EC4;&#x5305;&#x5C01;&#x88C5;&#x548C;&#x5206;&#x7247;&#x5C01;&#x88C5; &#x4E4B;&#x540E;&#x5C31;&#x8BA4;&#x4E3A;&#x662F; &#x5355;&#x4E2A;&#x6253;&#x5305;&#x6A21;&#x5F0F;</span>
          <span class="hljs-keyword">default</span>:
              NALUnit = <span class="hljs-keyword">new</span> <span class="hljs-keyword">byte</span>[<span class="hljs-number">4</span>+rtpPackage.data.length];
              NALUnit[<span class="hljs-number">0</span>] = <span class="hljs-number">0x00</span>;
              NALUnit[<span class="hljs-number">1</span>] = <span class="hljs-number">0x00</span>;
              NALUnit[<span class="hljs-number">2</span>] = <span class="hljs-number">0x00</span>;
              NALUnit[<span class="hljs-number">3</span>] = <span class="hljs-number">0x01</span>;
              System.arraycopy(rtpPackage.data,<span class="hljs-number">0</span>,NALUnit,<span class="hljs-number">4</span>,rtpPackage.data.length);
              NALEndFlag = <span class="hljs-keyword">true</span>;
              <span class="hljs-keyword">break</span>;
      }
      <span class="hljs-keyword">if</span>(NALEndFlag)
      {
         <span class="hljs-keyword">return</span>  NALUnit;
      }<span class="hljs-keyword">else</span>{
          <span class="hljs-keyword">return</span>  <span class="hljs-keyword">null</span>;
      }
  }
</code></pre>
<h2 id="&#x4E2A;&#x4EBA;&#x7ECF;&#x9A8C;"><a name="&#x4E2A;&#x4EBA;&#x7ECF;&#x9A8C;" class="anchor-navigation-ex-anchor" href="#&#x4E2A;&#x4EBA;&#x7ECF;&#x9A8C;"><i class="fa fa-link" aria-hidden="true"></i></a>1.6. &#x4E2A;&#x4EBA;&#x7ECF;&#x9A8C;</h2>
<ul>
<li>1&#x3001;&#x4EE5;java&#x4E3A;&#x4F8B;&#xFF0C;&#x52A0;&#x5165;&#x4F60;&#x4E0D;&#x77E5;&#x9053;&#x5F53;&#x524D;&#x6570;&#x636E;&#x8981;&#x4E0E;0X1F&#x8FDB;&#x884C;&#x4E0E;&#x8FD0;&#x7B97;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x5148;&#x60F3;&#x60F3;&#x7528;&#x54EA;&#x4E2A;&#x4E8C;&#x8FDB;&#x5236;&#x53EF;&#x4EE5;&#x8FBE;&#x5230;&#x60F3;&#x8981;&#x7684;&#x76EE;&#x7684;&#xFF0C;&#x7136;&#x540E;&#x5C06;&#x8FD9;&#x4E2A;&#x4E8C;&#x8FDB;&#x5236;&#x8F6C;&#x4E3A;&#x5341;&#x516D;&#x8FDB;&#x5236;&#x5C31;&#x53EF;&#x4EE5;&#x4E86;&#x3002;<pre><code class="lang-java"><span class="hljs-comment">// rtp&#x5C01;&#x5305;&#x65B9;&#x5F0F;&#xFF0C;&#x5355;&#x4E00;&#x5C01;&#x5305;&#x3001;&#x7EC4;&#x5408;&#x5C01;&#x5305;&#x3001;&#x5206;&#x7247;&#x5C01;&#x5305;&#x7B49; 0x1F -&gt; 0001 1111</span>
<span class="hljs-keyword">int</span> fuIndicatorTypeFlag = rtpPackage.data[<span class="hljs-number">0</span>] &amp; <span class="hljs-number">0x1F</span>;
</code></pre>
</li>
</ul>
<footer class="page-footer"><span class="copyright">&#x65E0;&#x7248;&#x6743; &#x53EF;&#x4EE5;&#x65E0;&#x9650;&#x5236;&#x4F7F;&#x7528;&#xFF01; all right reserved&#xFF0C;powered by Gitbook</span><span class="footer-modification">&#x8BE5;&#x6587;&#x4EF6;&#x66F4;&#x65B0;&#x65F6;&#x95F4;&#xFF1A;
2019-12-18 14:42:27
</span></footer>
                                
                                </section>
                            
    </div>
    <div class="search-results">
        <div class="has-results">
            
            <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
            <ul class="search-results-list"></ul>
            
        </div>
        <div class="no-results">
            
            <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
            
        </div>
    </div>
</div>

                        </div>
                    </div>
                
            </div>

            
                
                <a href="RTSP.html" class="navigation navigation-prev " aria-label="Previous page: RTSP">
                    <i class="fa fa-angle-left"></i>
                </a>
                
                
                <a href="RTCP.html" class="navigation navigation-next " aria-label="Next page: RTCP">
                    <i class="fa fa-angle-right"></i>
                </a>
                
            
        
    </div>

    <script>
        var gitbook = gitbook || [];
        gitbook.push(function() {
            gitbook.page.hasChanged({"page":{"title":"RTP","level":"1.13.3","depth":2,"next":{"title":"RTCP","level":"1.13.4","depth":2,"path":"chinese/视频相关/RTCP.md","ref":"chinese/视频相关/RTCP.md","articles":[]},"previous":{"title":"RTSP","level":"1.13.2","depth":2,"path":"chinese/视频相关/RTSP.md","ref":"chinese/视频相关/RTSP.md","articles":[]},"dir":"ltr"},"config":{"plugins":["-search","search-plus","todo","anchor-navigation-ex","copy-code-button","versions-select","fontsettings","sharing","tbfed-pagefooter","donate","local-video","splitter","edit-link","expandable-chapters","favicon","theme-comscore","local-video"],"styles":{"website":"styles/website.css"},"pluginsConfig":{"tbfed-pagefooter":{"copyright":"无版权 可以无限制使用！","modify_label":"该文件更新时间：","modify_format":"YYYY-MM-DD HH:mm:ss"},"todo":{},"splitter":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"versions-select":{"type":"branches"},"donate":{"alipay":"https://gitee.com/hnyer/filesOfGitbook/raw/master/files/201803011956_osChina_支付宝收款码.png","alipayText":"支付宝打赏","button":"打赏","title":"","wechat":"https://gitee.com/hnyer/filesOfGitbook/raw/master/files/201803011956_osChina_微信收款码.png","wechatText":"微信打赏"},"fontsettings":{"family":"sans","size":2,"theme":"sepia"},"highlight":{},"anchor-navigation-ex":{"associatedWithSummary":true,"float":{"floatIcon":"fa fa-navicon","level1Icon":"","level2Icon":"","level3Icon":"","showLevelIcon":false},"mode":"float","multipleH1":true,"pageTop":{"level1Icon":"","level2Icon":"","level3Icon":"","showLevelIcon":false},"printLog":false,"showGoTop":true,"showLevel":true},"favicon":{"shortcut":"assets/images/favicon.ico","bookmark":"assets/images/favicon.ico"},"theme-comscore":{},"local-video":{},"copy-code-button":{},"versions":{"options":[{"value":"https://www.aivin666.cn/java_android/","text":"v1.0"}]},"sharing":{"all":["facebook","google","twitter","weibo","instapaper"],"facebook":false,"google":true,"instapaper":false,"twitter":false,"vk":false,"weibo":true},"edit-link":{"label":"托管页面","base":"https://www.baidu.com/"},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false},"expandable-chapters":{},"search-plus":{}},"theme":"default","author":"Aivin","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"Aivin开发笔记","language":"zh-hans","gitbook":"*","description":"Aivin开发笔记"},"file":{"path":"chinese/视频相关/RTP.md","mtime":"2019-12-18T06:42:27.201Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-12-24T10:38:14.517Z"},"basePath":"../..","book":{"language":""}});
        });
    </script>
</div>

        
    <script src="../../gitbook/gitbook.js"></script>
    <script src="../../gitbook/theme.js"></script>
    
        
        <script src="../../gitbook/gitbook-plugin-search-plus/jquery.mark.min.js"></script>
        
    
        
        <script src="../../gitbook/gitbook-plugin-search-plus/search.js"></script>
        
    
        
        <script src="../../gitbook/gitbook-plugin-copy-code-button/toggle.js"></script>
        
    
        
        <script src="../../gitbook/gitbook-plugin-versions-select/plugin.js"></script>
        
    
        
        <script src="../../gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
        
    
        
        <script src="../../gitbook/gitbook-plugin-sharing/buttons.js"></script>
        
    
        
        <script src="../../gitbook/gitbook-plugin-donate/plugin.js"></script>
        
    
        
        <script src="../../gitbook/gitbook-plugin-local-video/video.min.js"></script>
        
    
        
        <script src="../../gitbook/gitbook-plugin-splitter/splitter.js"></script>
        
    
        
        <script src="../../gitbook/gitbook-plugin-edit-link/plugin.js"></script>
        
    
        
        <script src="../../gitbook/gitbook-plugin-expandable-chapters/expandable-chapters.js"></script>
        
    
        
        <script src="../../gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
        
    
        
        <script src="../../gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
        
    
        
        <script src="../../gitbook/gitbook-plugin-theme-comscore/test.js"></script>
        
    

    </body>
</html>

